package com.fisicaapp;

import android.annotation.SuppressLint;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

@SuppressLint("WrongCall")
public class PenduloView extends SurfaceView {
	private Bitmap bmp; 
	private SurfaceHolder holder ;
	private animaPen penHilo;
	static int longitud = 80;
	static double longitudlee = 0.5;
	Paint pincelRojo = new Paint();
	Paint pincelAzul = new Paint();
	double angulo=30;
	int mov=5;
	static int tipopendulo = 1;
	int seg = 0;
	private float posicionx;
	private float posiciony;
	private int estado;
	private Pendulo pendulo = new Pendulo( longitud , 1);
	private VectorMath vVelocidad = new VectorMath(0,0);
	private VectorMath vAcelera = new VectorMath(0,0);
	
	
	public PenduloView(Context context) {
		super(context);
		penHilo = new animaPen(this);
		pincelRojo.setColor(Color.RED);
        pincelRojo.setStrokeWidth(2);
        pincelRojo.setStyle(Paint.Style.STROKE);

		pincelAzul.setColor(Color.BLUE);
		pincelAzul.setStrokeWidth(2);
		pincelAzul.setStyle(Paint.Style.STROKE);
        

		bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
		holder = getHolder();
		holder.addCallback(new SurfaceHolder.Callback() {
			
			@Override
			public void surfaceDestroyed(SurfaceHolder holder) {
				// TODO Auto-generated method stub
				
			}
			
			@Override
			public void surfaceCreated(SurfaceHolder holder) {
				renuAnima();			
				
			}
			
			@Override 
			public void surfaceChanged(SurfaceHolder holder, int format, int width,
					int height) {
				
					
			
				
			}
		
		});
		// TODO Auto-generated constructor stub
	}
	public  void renuAnima(){
		penHilo = new animaPen(this);
		penHilo.start();
		penHilo.setRunning(true); 
	}
	public  void pausaAnima(){
		penHilo.setRunning(false); 
	}
	 

	protected void onDraw(Canvas canvas) {
		// 15 frecuencia 0.5 longitud 99 cmetros
				// 30  frecuencia 0,7  longitud 50 cm

		if(tipopendulo==1)
			pendulo.updateXYpen1(getWidth());
		if(tipopendulo==2)
			pendulo.updateXYpen2(getWidth());
		
		posicionx = (float) pendulo.getX();
		posiciony =(float) pendulo.getY();
		vVelocidad.setOrigen2((int)posicionx, (int)posiciony);
		vAcelera.setOrigen2((int)posicionx, (int)posiciony);
		vVelocidad.setXY((int)posicionx+(5*pendulo.getvar()), (int)posiciony + pendulo.getAngulo2() , false);
		vAcelera.setXY((int)posicionx+(5*pendulo.getsentidoA()), (int)posiciony +(-50+(4*(int)Math.abs(pendulo.getsentidoA()))), false);
		
			   canvas.drawColor(Color.WHITE);
			   canvas.drawLine(getWidth()/2 , 0, posicionx , posiciony, pincelRojo);
			   canvas.drawLine( (float)vVelocidad.getOrigenX() ,(float) vVelocidad.getOrigenY(), (float)vVelocidad.getX(),(float) vVelocidad.getY(), pincelRojo);
			   
			   canvas.drawLine( (float)vAcelera.getOrigenX() ,(float) vAcelera.getOrigenY(), (float)vAcelera.getX(),(float) vAcelera.getY(), pincelAzul);
			  //canvas.drawLine( (float)vAcelera.getX() ,(float) vAcelera.getX(), (int)vAcelera.getFlechaIzqXReal(),(int) vAcelera.getFlechaIzqYReal(), pincelAzul);
			   canvas.drawBitmap(bmp,posicionx,posiciony, null);
			  
			   
		
			
		
		}
}